<?php
//数字索引数组的初始化
$products = array('Tries','Oil','speak Plugs');
// print_r($products);
// echo $products[0];

//可以使用=修改数组的元素
// $products[0] = '雨的印记';
// print_r($products);
//直接直接给数组中添加元素
$products[3] = "挪威的森林";
// print_r($products);

//创建一个1-10的数字数组
//使用range()函数可以创建一个1-10的数字数组
$numbers = range(1,10);
// print_r($numbers);

//range()函数有一个可选的第三个参数,这个参数允许设定值之间的步长，下面是创建一个1-10之间的奇数数组
$numbers1 = range(1,10,2);
// print_r($numbers1);


//range含糊可以对字符进行操作
$letters = range('a','z');
// print_r($letters);


//数组是不需要进行初始化操作的,在第一次使用的时候，他们就会自动创建
$product_arr[0] = '雨的印记';
$product_arr[1] = '克罗地亚狂想曲';
$product_arr[2] = '海边的祈祷';
// print_r($product_arr);

//如果$products并不存在,第一行代码将创建只有一个元素的数组,而后面的代码将在这个数组中继续创建元素并且增加新的数值，数组的大小将根据所增加的元素多少动态的发生变化
//这种调整在大多数的编程语言中是不存在的

//使用循环访问数组
//由于数组是使用数字进行索引的,索引可以使用for循环很容易的显示数组中的内容
// for($i = 0 ; $i <3;$i++){
//     echo $product_arr[$i]."\n";
// }

//使用foreach循环语句,这个循环语句就是专门为了数组诞生的
// foreach($product_arr as $current){
//     echo $current.' ';
// }

//初始化相关数组
//如下面的所看到的  可以以名称作为关键字，以价格做为值的相关数组
$prices = array('one' => 1 , 'two' => 2 , 'three' => 3);
// print_r($prices);


//创建一个和prices数组相同的数组，这种方法不是创建一个具有三个元素的数组，而是创建只有一个元素的数组，然后在向这个数组中增加两个
$price_arr = array('one' => 1);
$price_arr['two'] = 2;
$price_arr['three'] = 3;
// print_r($price_arr);

//下面这些代码是有一些不同的，但是功能和上面都是等价的,在这种方法中,并没有明确的创建一个数组,数是在向这个数组中添加第一个元素的时候创建的
$price_arr1['one'] = 1;
$price_arr1['two'] = 2;
$price_arr1['three'] = 3;

// print_r($price_arr1);

foreach($price_arr1 as $key => $val){
    // echo $key.'=>' .$val.'<br>';
}

//如下所示的代码将使用each()结构打印price_arr1数组的内容
//以为相关数组的索引不是数字,因此无法在for循环语句中使用一个简单的计数器对数组进行操作,但是可以使用foreach循环或者使用list()和each()结构
// while($element = each($price_arr1)){
//     $element['sky'] = '天空';
//     echo $element['key'];
//     echo' - ';
//     echo $element['value'];
//     echo ' - ';
//     echo $element['sky'];
//     echo '<br/>';
// }


// list($key,$value) = each($price_arr1);
// echo $key . '=>' . $value;
//我们可以使用循环比那里整个$prices数组,使用如下所示的简短脚本显示他的内容
while(list($key,$value) = each($price_arr1)){
    echo $key . ' - ' . $value.'<br />';
}


//这里需要注意的一点，当使用each()函数的时候,数组将记录当前元素,如果希望相同的脚本中两次使用该数组,就必须使用函数reset()将当前元素的指针设置到数组的最开始处
//每次使用each()函数遍历数组的时候,指针都会发生变化,但是不会自动还原,必须使用reset()函数对数组的指针进行还原
reset($price_arr1);
while(list($key,$value) = each($price_arr1)){
    echo $key . ' - ' .$value;
}













